package cn.ilovese.collect.controller.file;

import cn.ilovese.collect.service.file.FileService;
import cn.ilovese.collect.service.user.UserService;
import cn.ilovese.collect.vo.ResultVO;
import cn.ilovese.collect.vo.file.FileInfoVO;
import cn.ilovese.collect.vo.user.UserVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

@RestController
@RequestMapping("/file")
public class FileController {
    @Resource
    FileService fileService;

    //三个注解配置接收前端调用时传给的参数，你们自己根据需要给每个Controller方法的参数添加
    //@RequestBody，接收前端传递给后端的json字符串中的数据的(请求体中的数据的)
    //@RequestParam，将请求参数绑定到你控制器的方法参数上（是springmvc中接收普通参数的注解）
    //@PathVariable，接收请求路径中占位符的值

    // 上传文件，目前还不知道是对应前端哪个路由，用的get还是post方法，先都用post替代
    @PostMapping("/upload")
    public ResultVO<FileInfoVO> upload(@RequestParam("file") MultipartFile file){
        return fileService.uploadFile(file);
    }

    // 下载文件，目前还不知道是对应前端哪个路由，用的get还是post方法，先都用post替代
    @GetMapping("/download/{fileName}")
    public void download(@PathVariable String fileName, HttpServletResponse response){
        fileService.downloadFile(fileName,response);
    }

}
